#include <stdio.h>
#include <stdlib.h>
#include "encomenda.h"

typedef struct encomenda Encomenda;


//MANIPULA A LISTA DE ENCOMENDAS INSERINDO UM NOVO NO ENCOMENDA
void cadastrar_encomenda(Encomenda **lista_encomenda, int cod_enc){
    Encomenda *novo_enc=malloc(sizeof(Encomenda));
        if (novo_enc!=NULL){
            novo_enc->codigo_enc=cod_enc;
            printf("\t\tFormulário de Registro de Encomendas\n\n");
            printf("Nome do Material Encomendado: ");
                scanf(" %[^\n]", &novo_enc->nome_enc);

            printf("Valor: ");
                scanf("%2f", &novo_enc->valor_enc);

            printf("Quantidade: ");
                scanf("%d", &novo_enc->quant_enc);

            printf("Status");
                scanf("%d" , &novo_enc->status_enc);

            novo_enc->prox = *lista_encomenda;
            novo_enc->ant = NULL;

            if((*lista_encomenda)!=NULL) {
                (*lista_encomenda)->ant = novo_enc;
            }
             (*lista_encomenda) = novo_enc;


        else{
            printf("Falha no cadastro, não foi possível alocar espaço para um novo projeto");
        }
}


//MANIPULA A LISTA DE ENCOMENDAS ALTERANDO UMA ENCOMENDA
void alterar_cad_encomenda(Encomenda **lista_encomenda, int cod_enc){
    Encomenda *alt_enc=malloc(sizeof(Encomenda));
    alt_enc=busca_encomenda_cod(lista_encomenda,cod_enc);
    printf("Deseja cancelar a Ecomenda?");
    scanf("%d" ,alt_enc->status_enc);

    //desenvolver função para alterar a encomenda apontado por alt_enc
}

//IMPRIME TODOS OS CAMPOS DE UM NO ENCOMENDA
void imprime_encomenda(Encomenda **lista_encomenda, int cod_enc){

	//desenvolver função para imprimir todos os campos do struct encomenda
}

//FUNÇÃO QUE BUSCA UMA ENCOMENDA NA LISTA TENDO CONHECIDO O CODIGO DO ENCOMENDA
Encomenda busca_encomenda_cod(Encomenda **lista_encomenda, int cod_enc){
    Encomenda *enc=malloc(sizeof(Encomenda));
    //desenvolver função que retorne a encomenda com o código=cod_enc e se não encontrar retorne NULL

    return enc;
}
